uC/OS
ucos 确实不难,应该好好利用
D:\code\ucos E:\硬件\操作系统\uCOS
ucos 函数
void OSTimeDLY(INT16U ticks) void OSTimeDlyHMSM(INT8U hours,INT8U minutes,INT8U seconds,INT16U milli)
创建任务
INT8U OSTaskCreate(
void (*task)(void *pd), //任务代码指针 void *pdata, //任务参数指针 OS_STK *ptos, //任务栈的栈顶指针 INT8U prio //任务的优先级 );
例如: OSTaskCreate(MyApp,
(void *)0, (OS_STK *)&MyAppStk[TASK_STK_SIZE-1], TASK_START_PRI0+2, ) ;
一个任务通常是一个无限循环(返回值类型void) void MyApp(void *pdata) {
pdata = pdata ; while (1) { do something; waiting; do something;
} }
任务也可以自我删除(并非真的删除,只是内核不再知道该任务) void MyTask (void *pdata) {
/* 用户代码 */ ...... OSTaskDel(OS_PRIO_SELF);
}
任务优先级数值越小,优先级越高。 系统保留了优先级为0、1、2、3、OS_LOWEST_PRIO-3、OS_LOWEST_PRI0-2, OS_LOWEST_PRI0-1 以及OS_LOWEST_PRI0这8个任务以被将来使用, 用户可以有56个应用任务; 任务的优先级同样也是它的标识号ID
基本数据类型
typedef unsigned char BOOLEAN; typedef unsigned char INT8U; typedef signed char INT8S; typedef unsigned int INT16U; typedef signed int INT16S; typedef unsigned long INT32U; typedef signed long INT32S; typedef float FP32; typedef double FP64;